package org.eae.eldf.service.sys;

import java.util.HashSet;
import java.util.List;

import org.eae.eldf.dto.sys.OperatorRoleCheckDto;
import org.eae.eldf.dto.sys.SysOperatorQueryDto;
import org.eae.eldf.entity.sys.SysOperator;
import org.eae.eldf.entity.sys.SysRole;
import org.eae.eldf.framework.pager.Pagination;
import org.eae.eldf.framework.persistence.Criteria;
import org.eae.eldf.framework.service.BaseService;
import org.eae.eldf.webapp.vo.TreeVo;

public interface SysOperatorService extends BaseService<SysOperator>{

	/**
	 * 根据用户名查询系统用户
	 * @param loginUsername
	 * @return
	 */
	public SysOperator queryByUser(String loginUsername);
	
	/**
	 * 分页查询用户
	 * @param pager
	 * @param searchValue
	 * @return
	 */
	public Pagination<SysOperator> queryPageUserList(Pagination<SysOperator> pager,SysOperatorQueryDto dto);
	
	/**
	 * 置 用户为已删除
	 * @param id
	 */
	public void delete(Long id);
	
	/**
	 * 根据主键查询用户
	 * @param id
	 * @return
	 */
	public SysOperator queryById(Long id);
	
	/**
	 * 查询用户的角色 包含该用户没有的角色 返回的对象中区分
	 * @param operatorId
	 * @return
	 */
	public List<OperatorRoleCheckDto> queryRoleByUser(Long operatorId);
	
	/**
	 * 保存用户的角色
	 * @param operatorId
	 * @param role_ids
	 */
	public void saveOperatorRole(Criteria c,Long operatorId, String role_ids);
	
	/**
	 * 获取用户拥有的资源ID
	 * @param loginName
	 * @return
	 */
	public HashSet<Long> getOperatorMenus(String loginName);
	
	public List<TreeVo> getMenusByUser();
	
	public void insertUserAndRole(SysOperator operator,String roleIds);
}
